#ifndef PARTICLE_EMITTER_HPP
#define PARTICLE_EMITTER_HPP

#include "ParticleSystem.hpp"
#include "EmitterRange.hpp"

class ParticleSystem;

//sprays particles
class ParticleEmitter {
    public:
    ParticleEmitter(ParticleSystem *system,
                    float x, float y,
                    float angle, float angle_deviation,
                    float power, float power_deviation,
                    float scale, float scale_deviation,
                    float rotation_speed, float rotation_speed_deviation,
                    float mass, float mass_deviation,
                    float dt_scale, float dt_scale_deviation,
                    unsigned int particles_per_second);

    void update();
    void output();

    ParticleSystem* system;
    float x, y;

    EmitterRange angle;
    EmitterRange power;
    EmitterRange scale;
    EmitterRange rotation_speed;
    EmitterRange mass;
    EmitterRange dt_scale;

    float particles_per_second;
    float dt;
};


#endif // PARTICLE_EMITTER_HPP
